package classesBD;


import aplicacao.funcoes;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Pessoal
 */
public class Pessoa implements tabela{
  private Integer idPessoa;
  private String anotacao;
  private String url;
  private ArrayList<String> nomes;

  public Pessoa(String nome) {
    nomes = new ArrayList();
    nomes.add(nome);
  }

  
  @Override
  public int insere(boolean checaExistencia) {
    if (checaExistencia){
      for(int i =0;i<nomes.size();i++){
        idPessoa = existe(nomes.get(i));
        if(idPessoa != 0){
          break;
        }
      }  
    }  
    if (idPessoa == 0){ 
        try {
            String[] campos = new String[3];
            campos[0] = "default";
            campos[1] = anotacao;
            campos[2] = url;
            String query = funcoes.montaInsert("PESSOA", campos);
            idPessoa = Conexao.executa(query, true);
            if (idPessoa != 0){
              for(int i =0;i<nomes.size();i++){
                campos = new String[2];
                campos[0] = Integer.toString(idPessoa);
                campos[1] = nomes.get(i);
                query = funcoes.montaInsert("NOME", campos);
                Conexao.executa(query);
                Conexao.fecha();
              }
            }
        } catch (SQLException ex) {
            Logger.getLogger(Pessoa.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return idPessoa;
  }

  @Override
  public void buscaPorId(int id) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public void buscaPorNome(String nome) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public String existe(int id) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public int existe(String nome) {
    String query = "SELECT P.IDPESSOA FROM PESSOA P JOIN NOME N ON N.IDPESSOA = P.IDPESSOA WHERE N.NOME=" + funcoes.quotedStr(nome);
    String[][] retorno = Conexao.pesquisa(query, 1);
    if (retorno.length > 0){
      return Integer.parseInt(retorno[0][0]);
    }else{
      return 0;
    }
  }

  @Override
  public boolean preencheAttr(String attr, String valor) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  public Integer getIdPessoa() {
    return idPessoa;
  }
  
  
}
